
/**
 * @ProjectName: 
 * @Copyright: 2014 lisheng  All Right Reserved.
 * @address: toughheart@163.com
 * @date: 2016年2月28日 下午8:26:17
 * @Description: 本内容未经本人允许禁止使用、转发.
 */
 
package com.ls.fw.web.core.support;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * token管理
 * @author lisheng
 * @date 2016年2月28日 下午8:39:43
 * @version V1.0 
 * @param <S> 存储对象，（如HttpSession）
 */
public interface TokenManager<S> {
	
	/**
	 * token 名称
	 * @author lisheng
	 * @date 2016年2月28日 下午8:32:49
	 * @version V1.0
	 * @return
	 */
	public String getName();
	

	/**
	 * 存储token 名称
	 * @author lisheng
	 * @date 2016年2月28日 下午8:41:41
	 * @version V1.0
	 * @return
	 */
	public String getStorgeName();
	
	/**
	 * 为session生成token
	 * @author lisheng
	 * @date 2016年2月28日 下午8:29:20
	 * @version V1.0
	 * @param session
	 * @return
	 */
	public  String getTokenForSession(HttpSession session);
	
	
	/**
	 * 获取token
	 * @author lisheng
	 * @date 2016年2月28日 下午8:29:37
	 * @version V1.0
	 * @param storage 存储
	 * @param request
	 * @return
	 */
	public  String getTokenFromStorage(S storage, HttpServletRequest request);
		 
	/**
	 * 获取token
	 * @author lisheng
	 * @date 2016年2月28日 下午8:29:59
	 * @version V1.0
	 * @param request
	 * @return
	 */
    public  String getTokenFromRequest(HttpServletRequest request);
}
